#pragma once

#include <geometry_msgs/Pose2D.h>
#include "geometry_msgs/PoseWithCovarianceStamped.h"
#include <sensor_msgs/PointCloud2.h>
 
namespace kybot_map {
//地图信息接口
class MapInfo
{
public:
    MapInfo();

    inline geometry_msgs::Pose2D GetPose() const {return pose_;}
    inline int GetLocalizationStatus() const {return status_;}
    const sensor_msgs::PointCloud2& GetLaserScan() const {return laser_scan_;}
    inline int GetMode() const {return mode_;}

    static boost::shared_ptr<MapInfo> CreateMapInfo(const std::string& type);
protected:
    //坐标
    geometry_msgs::Pose2D pose_;
    //定位状态
    int status_;
    //激光数据
    sensor_msgs::PointCloud2 laser_scan_;
    //当前的地图模式
    // 1: visual_recording_state 可视化建图模式
    // 2: map_state 地图生成模式
    // 3: localization_state 定位模式
    // 4: recording_state 纯记录建图模式
    // 5: alignment_state 对齐模式
    // 6: mask_state 激光裁剪模式
    // 7: expandmap_state 扩展模式
    int mode_ = 0;

private:
};


}